package com.young.design.pattern.singleton;

/**
 * @ClassName : SingleTon4
 * @Author : hyy
 * @Date: 2020-03-14
 * 懒汉式 单例模式 ----线程安全的写法最终版
 * 双端检查+volatile关键字修饰，解决了线程安全问题，也避免了指令重排导致的获取到的对象是未初始化的问题
 */
public class SingleTon7 {
    private static volatile SingleTon7 singleTon5;
    private SingleTon7(){

    }
    public static SingleTon7 getInstance(){
        if (singleTon5==null){
            synchronized (SingleTon7.class){
                if (singleTon5==null){
                    singleTon5=new SingleTon7();
                }
            }
        }
        return singleTon5;
    }
}
